The present invention pertains to data networks wherein data is packaged and transmitted as packets. The best known current example of such systems is the well-known Internet, used by large numbers of people and organizations for such as Internet mail delivery, proprietary data-file transfer systems, and other known data transfer services. Typically, a subscriber wishes to send information to another subscriber to a service connected to such a network. Such a service may be an e-mail service provider, a chat and data-file transfer service provider, or any other data transport service provider wherein both clients involved in a transaction subscribe and maintain and use the appropriate and compatible software programs enabling such file transfer. Such applications are adapted to communicate over a data network according to various protocols. The Internet is used extensively in this specification as an example of such a network wherein sometimes quite large data files are routinely transported over long distances. Also, systems compatible with the Internet are conventionally termed Internet protocol (IP) systems, and this terminology is used herein as well.
E-mail service providers are a good example of such services that one may subscribe to in order to send and receive data over the Internet. E-mail service providers typically provide all of the hardware and software required to operate their service, and are typically a part of an Internet Service Provider's services. For example, a plurality of e-mail servers may be geographically distributed throughout the Internet at locations where local clients may dial-up a server and retrieve or send mail, which may include file attachments. Client software applications are generally configured to communicate with a server or servers local to the clients Internet service provider (ISP) through which the client connects to the network.
Proprietary file-transfer services use servers typically as described above. For example, IP phone programs, International Chat or file transfer applications, business networking programs, Internet video rental programs, genealogy programs, and a host of others use various systems of distributed servers. Such servers may or may not be owned by the service provider. In some cases servers are leased with more than one service provider possibly sharing one server. In many cases several servers are available to one client application as is the case with many business network applications.
Routing of data over an IP network is generally from one node to another node or from one server to another server wherein the next route-to destination address is, in many cases, the address of a next server closer to the final destination. Routers in the network are equipped with routing tables that contain information about different routes or paths through the network leading toward the final destination. A data file to be transmitted first resides in the client's local system, and is typically uploaded to an Internet-connected local server for routing. The local server may negotiate under such protocols as RSVP a route to a next server that is closer to the intended destination, and so on, until the data arrives at the end server which stores the information for retrieval by the receiving client. As the terminology packet implies, data to be transmitted is packaged as a series of packets, including accompanying identification and data, and the packets for a particularly large block of data may or may not follow the same route. At the destination end, separate packets are reorganized into a copy of the original file.
Depending on the distance from a sending client to a receiving client, there may be many servers which must store the data file and negotiate routes to a subsequent server before the data file may be sent on. These segments wherein the message or data file pauses are known as hops in the art. For example, for a data file to move from a source server to an end server, many pauses or hops may be experienced along the way. A gateway router linking two separate networks would comprise one hop and so on.
A problem with the current art is that large files may take a much longer time to arrive at the intended destination than a small file. Many companies place constraints on the data size of single transfer events because of limited storage space available in servers and during periods of heavy network traffic. Server storage capacities can be taxed if many large files are being stored while waiting on further routing instructions. Servers can sometimes become overloaded with data and crash, hence the phrase in the art, the server is down. Also, random distribution of packets may cause weak links in an unbalanced system to get clogged up, which can lead to the loss of packets, which ultimately leads to additional routing attempts, which in turn leads to more congestion.
As described briefly above, a large data file is broken down into many smaller data packets for transport. Each data packet contains the appropriate addressing information required to facilitate routing. Because data files travel as data packets, large data files comprising many packets take much longer to transport than small files comprising only a few packets. If a server goes down while a large file is being transferred, some of the file may not arrive, causing further delay when the server is up again. Those with skill in the art of IP network data-transfer will readily understand that much improvement is needed in the way data routing is accomplished over a large and busy IP network.
What is clearly needed is a method and apparatus that will greatly facilitate transfer of large blocks of data or data streams over packet-style data networks.